/**
 * 封装连接数据库文件
 */

const mysql = require('mysql')

// 创建连接池
const pool = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: '123456',
    port: 3306,
    database: 'student',
    connectionLimit: 0,
    multipleStatements: true // 设置可以同时查询多条语句
})

// 封装sql语句
const query = (sql, params, callback) => {
    // 获取连接
    pool.getConnection((err, conn) => {
        if (err) {
            console.log(err, '数据库连接失败')
            pool.releaseConnection()    // 释放数据库
        }
        // 传入三个参数，第一个参数sql语句，第二个参数sql语句中需要的数据，第三个参数回调函数
        conn.query(sql, params, (err, result, fields) => {
            if (err) {
                conn.release()  // 释放连接
                console.log(err, 'sql语句执行失败')
                return
            }
            console.log(result)
            // 传递数据 results作为数据操作后的结果，fields作为数据库连接的一些字段
            callback(result, fields)
            conn.release(); // 释放连接
        })
    })
}

module.exports = { query }